package szoftlab4;

/**
 * Az aktív, azaz órajel hatására változó atomi elemek ősosztálya.
 * @author Peti
 */
@SuppressWarnings("LeakingThisInConstructor")
public abstract class AktivAtomiElem extends AtomiElem implements AktivEpitoelem
{

    /**
     * Az AktivAtomiElem konstruktora.
     */
    public AktivAtomiElem()
    {
        //Logger.log(this, HivasTipus.Create, "AktivAtomiElem", "AktivAtomiElem()");
        //Logger.log(this, HivasTipus.Return, "AktivAtomiElem", "AktivAtomiElem()");
    }

    /**
     * Az építőelem átadja saját magát az EpitoelemAktivVisitor visit metódusának.
     *
     * @param v
     * Az asztal EpitoelemAktivVisitora.
     */
    public void accept(EpitoelemAktivVisitor v)
    {
        Logger.log(this, HivasTipus.Call, "AktivEpitoelem", "void accept()");
        v.visit(this);
        Logger.log(this, HivasTipus.Return, "AktivEpitoelem", "void accept()");
    }

    /**
     * Visszaállítja alapállapotba az aktív építőelemet.
     */
    public abstract void visszaallit();

    /**
     * Lépteti az aktív építőelem állapotát.
     */
    public abstract void leptet();
}
